package com.yangzhang.blog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yangzhang.blog.dto.UserAreaDTO;
import com.yangzhang.blog.dto.UserBackDTO;
import com.yangzhang.blog.dto.UserDetailDTO;
import com.yangzhang.blog.dto.UserInfoDTO;
import com.yangzhang.blog.entity.UserAuth;
import com.yangzhang.blog.vo.*;

import java.util.List;

/**
 * @author YangZhang
 * @version 1.0.0
 * @createTime 2022年08月30日 10:16:00
 */
public interface UserAuthService extends IService<UserAuth> {



    /**
     * 发送邮箱验证码
     *
     * @param username 邮箱号
     */
    void sendCode(String username);

    /**
     * 获取用户区域分布
     *
     * @param conditionVO 条件签证官
     * @return {@link List <UserAreaDTO>} 用户区域分布
     */
    List<UserAreaDTO> listUserAreas(ConditionVO conditionVO);

    /**
     * 修改管理员密码
     *
     * @param passwordVO 密码对象
     */
    void updateAdminPassword(PasswordVO passwordVO);
    /**
     * 用户注册
     *
     * @param user 用户对象
     */
    void register(UserVO user);
    /**
     * 修改密码
     *
     * @param user 用户对象
     */
    void updatePassword(UserVO user);

    /**
     * 查询后台用户列表
     *
     * @param condition 条件
     * @return 用户列表
     */
    PageResult<UserBackDTO> listUserBackDTO(ConditionVO condition);

    /**
     * qq登录
     *
     * @param qqLoginVO qq登录信息
     * @return 用户登录信息
     */
    UserInfoDTO qqLogin(QQLoginVO qqLoginVO);

    /**
     * 判断用户是否登录
     *
     * @param
     * @return UserDetailDTO
     */
    UserDetailDTO isLogin();
}
